Timer Functions এবং তার কাজ

Computer Programming - আরডুইনো (Arduino) Interrupts এবং Timer Functions (Interrupts and Timer Functions in Arduino) |
231
231

Arduino তে Timer Functions ব্যবহার করে নির্দিষ্ট সময়ের ব্যবধানের পর পর কিছু কাজ করা যায়। Timer Functions হল এমন কিছু ফাংশন যা একটি নির্দিষ্ট সময় বা ইন্টারভালে কাজ সম্পন্ন করতে সহায়তা করে। Arduino তে সাধারণত delay(), millis(), এবং micros() ফাংশন ব্যবহার করা হয় টাইমার ফাংশন হিসেবে। এসব ফাংশন বিভিন্ন প্রজেক্টে সঠিক সময় ব্যবধান ধরে রাখতে এবং ইন্টারভাল ভিত্তিক কাজ সম্পন্ন করতে সহায়তা করে।

Timer Functions এর ধরন ও কাজ

  • delay(): এই ফাংশন নির্দিষ্ট সময়ের জন্য প্রোগ্রামের কার্যক্রম স্থগিত রাখে। এটি মিলিসেকেন্ডে সময় গ্রহণ করে।
  • millis(): এটি প্রোগ্রাম শুরু হওয়ার পর থেকে কত মিলিসেকেন্ড পেরিয়ে গেছে তা বলে। এটি টাইমার হিসেবেও কাজ করতে পারে।
  • micros(): এটি প্রোগ্রাম শুরু হওয়ার পর থেকে কত মাইক্রোসেকেন্ড পেরিয়ে গেছে তা বলে।

delay() ফাংশন

delay() ফাংশন ব্যবহার করলে নির্দিষ্ট সময়ের জন্য প্রোগ্রামের কার্যক্রম স্থগিত হয়। এটি সাধারণত ছোট প্রকল্পে ব্যবধান তৈরি করতে ব্যবহার করা হয়।

উদাহরণ

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH); // LED অন
  delay(1000); // ১ সেকেন্ড অপেক্ষা
  digitalWrite(LED_BUILTIN, LOW); // LED অফ
  delay(1000); // ১ সেকেন্ড অপেক্ষা
}

কাজ: এখানে LED প্রতি ১ সেকেন্ড অন্তর অন এবং অফ হবে।

millis() ফাংশন

millis() ফাংশন দিয়ে প্রোগ্রাম শুরু হওয়ার পর থেকে কত মিলিসেকেন্ড পেরিয়ে গেছে তা জানা যায়। এটি টাইমার হিসেবে ব্যবহৃত হয় এবং প্রোগ্রামের কার্যক্রমে কোন প্রকার বিলম্ব ঘটায় না।

উদাহরণ

unsigned long previousMillis = 0; // পূর্বের সময় সংরক্ষণ
const long interval = 1000; // ১ সেকেন্ডের ইন্টারভাল

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  unsigned long currentMillis = millis(); // বর্তমান সময় পড়া

  if (currentMillis - previousMillis >= interval) {
    previousMillis = currentMillis; // পূর্বের সময় আপডেট করা
    digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN)); // LED-এর অবস্থা পরিবর্তন করা
  }
}

কাজ: LED প্রতি ১ সেকেন্ড অন্তর অন এবং অফ হবে, কিন্তু প্রোগ্রামের অন্য অংশ চালু থাকবে।

micros() ফাংশন

micros() ফাংশন millis() এর মতোই কাজ করে, তবে এটি মাইক্রোসেকেন্ড হিসেবে সময় পড়ে। এটি আরও সূক্ষ্ম সময় ব্যবধানের প্রয়োজন হলে ব্যবহার করা হয়।

উদাহরণ

unsigned long startTime = 0;

void setup() {
  Serial.begin(9600);
}

void loop() {
  startTime = micros(); // বর্তমান মাইক্রোসেকেন্ড পড়া
  Serial.print("Current Time: ");
  Serial.println(startTime); // মাইক্রোসেকেন্ড আউটপুট
  delay(1000); // ১ সেকেন্ড অপেক্ষা
}

কাজ: এখানে প্রতিবার লুপ চালানোর সময় বর্তমান সময় মাইক্রোসেকেন্ডে প্রিন্ট করা হবে।


Timer Functions এর ব্যবহারিক দিক

  • নির্ভুল সময় ব্যবধান: millis() এবং micros() প্রোগ্রামের অন্য কার্যক্রমে বিলম্ব ঘটায় না, তাই একই সাথে একাধিক কাজ সম্পন্ন করা সম্ভব।
  • ইন্টারভাল ভিত্তিক কাজ: Timer Functions ব্যবহার করে নির্দিষ্ট ইন্টারভালে সেন্সর পড়া, LED ফ্ল্যাশ করা, বা মোটর নিয়ন্ত্রণ করা যায়।
  • নন-ব্লকিং কোড: millis() ব্যবহার করে কোড নন-ব্লকিং করা যায়, যা প্রোগ্রামকে আরও কার্যকর করে তোলে।

Timer Functions ব্যবহার করার সতর্কতা

  • delay() ফাংশন প্রোগ্রামের কার্যক্রম থামিয়ে দেয়: delay() ব্যবহার করলে প্রোগ্রামের অন্য কাজগুলো স্থগিত থাকবে, তাই জটিল প্রকল্পে এটি কম ব্যবহার করা ভালো।
  • millis() এবং micros() রোলওভার সমস্যা: ৪৯.৭ দিন পর millis() এবং প্রায় ৭১ মিনিট পর micros() পুনরায় ০ থেকে শুরু হয়। বড় প্রোজেক্টে এটি মাথায় রাখা গুরুত্বপূর্ণ।

Timer Functions এর সঠিক ব্যবহার Arduino প্রোগ্রামে কার্যক্রম সময়মতো সম্পন্ন করতে এবং প্রোগ্রামের কার্যকারিতা বৃদ্ধি করতে সাহায্য করে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion